package br.com.model.entity;

// Generated 28/10/2013 11:27:52 by Hibernate Tools 3.4.0.CR1

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Reserva generated by hbm2java
 */
@Entity
@Table(name = "reserva", catalog = "locarweb_db")
public class Reserva implements java.io.Serializable {

	private Integer idReserva;
	private Locacao locacao;
	private Cliente cliente;
	private Veiculo veiculo;
	private Date datainicio;
	private Date datafim;
	private String situacaoreserva;
	private Set reservaprecoses = new HashSet(0);
	private Set reservapenalidadeses = new HashSet(0);

	public Reserva() {
	}

	public Reserva(Locacao locacao, Cliente cliente, Veiculo veiculo) {
		this.locacao = locacao;
		this.cliente = cliente;
		this.veiculo = veiculo;
	}

	public Reserva(Locacao locacao, Cliente cliente, Veiculo veiculo,
			Date datainicio, Date datafim, String situacaoreserva,
			Set reservaprecoses, Set reservapenalidadeses) {
		this.locacao = locacao;
		this.cliente = cliente;
		this.veiculo = veiculo;
		this.datainicio = datainicio;
		this.datafim = datafim;
		this.situacaoreserva = situacaoreserva;
		this.reservaprecoses = reservaprecoses;
		this.reservapenalidadeses = reservapenalidadeses;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "idRESERVA", unique = true, nullable = false)
	public Integer getIdReserva() {
		return this.idReserva;
	}

	public void setIdReserva(Integer idReserva) {
		this.idReserva = idReserva;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "LOCACAO_idLOCACAO", nullable = false)
	public Locacao getLocacao() {
		return this.locacao;
	}

	public void setLocacao(Locacao locacao) {
		this.locacao = locacao;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CLIENTE_idCLIENTE", nullable = false)
	public Cliente getCliente() {
		return this.cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "VEICULO_idVEICULO", nullable = false)
	public Veiculo getVeiculo() {
		return this.veiculo;
	}

	public void setVeiculo(Veiculo veiculo) {
		this.veiculo = veiculo;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "DATAINICIO", length = 19)
	public Date getDatainicio() {
		return this.datainicio;
	}

	public void setDatainicio(Date datainicio) {
		this.datainicio = datainicio;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "DATAFIM", length = 19)
	public Date getDatafim() {
		return this.datafim;
	}

	public void setDatafim(Date datafim) {
		this.datafim = datafim;
	}

	@Column(name = "SITUACAORESERVA")
	public String getSituacaoreserva() {
		return this.situacaoreserva;
	}

	public void setSituacaoreserva(String situacaoreserva) {
		this.situacaoreserva = situacaoreserva;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "reserva")
	public Set getReservaprecoses() {
		return this.reservaprecoses;
	}

	public void setReservaprecoses(Set reservaprecoses) {
		this.reservaprecoses = reservaprecoses;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "reserva")
	public Set getReservapenalidadeses() {
		return this.reservapenalidadeses;
	}

	public void setReservapenalidadeses(Set reservapenalidadeses) {
		this.reservapenalidadeses = reservapenalidadeses;
	}

}
